#ifndef SOLVER_H
#define SOLVER_H

#include <ilcplex/ilocplex.h>
#include "simulate.h"
#include "parse.h"

ILOSTLBEGIN
typedef IloArray<IloNumArray> NumMatrix;
typedef IloArray<IloNumVarArray> NumVarMatrix;

class Solver{
  public:
        ~Solver();
        //Solver(Simulate *sim):Sim(sim) {}
        
        int mode_num;
        int tot_DFF_num;
        void read_resMap(int mode_num, int tot_DFF_num, vector<TresMap*> *Mymap){
                this->Mymap = Mymap;
                this->mode_num = mode_num;
                this->tot_DFF_num = tot_DFF_num;
        }
        
        void solver(int trace_size, vector<int>& selected_traces);
        
  private:
        vector<TresMap*> *Mymap;
        //Simulate *sim;
};

#endif
